home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / ambos / Request.lha / RequestAm.mdmrexx next >
Text File  |  1995-05-24  |  5KB  |  262 lines

  1.  
  2. /* RequestAm.mdmrexx 1.1 (13.05.95)
  3.    Autor: Cujo@groenld.sb.sub.de */
  4.  
  5. /*
  6. ** $VER: RequestAm.mdmrexx 1.1 (13.05.95)
  7. **
  8. ** Teile dieses Skriptes habe ich aus dem Skript RequestFC 1.2 von
  9. ** J. Kohrmeyer entnommen.
  10. **
  11. ** Beschreibung:
  12. ** -------------
  13. ** RequestAm dient dazu, aus einer von MAPS geschickten INHALT-Nachrich
  14. t
  15. ** oder aus den Aminet-Readme's Files zu requesten. Die gefundenen File
  16. s
  17. ** werden alphabetisch sortiert in einem Fenster angezeigt. Mehrfachaus
  18. -
  19. ** wahl ist moeglich (SHIFT-Taste druecken). Das Requesten von Aminet-
  20. ** Readme's funktioniert nur einwandfrei, wenn das Skript im Brett
  21. ** AMINET/READMES gestartet wird.
  22. **
  23. ** ACHTUNG!!! Dieses Skript ist Tortenware. Wer dieses Skript regel-
  24. ** maessig verwendet, ist verpflichet mir eine Torte zu schicken.
  25. ** (Halt! Stop! Noch nicht zum Konditor rennen. War doch nur ein Witz :
  26. -)))
  27. **
  28. ** Installation:
  29. ** -------------
  30. ** 'RequestAm.mdmrexx' soll über das ARexx-Menü von 'MicroDot' aufrufba
  31. r
  32. ** sein und muß deshalb nach 'MicroDot/Rexx' kopiert werden. Im Menü
  33. ** 'Rexx/Nachrichten-Makros' erscheint dann der Menüpunkt 'RequestAm'.
  34. **
  35. ** Am Anfang des Scripts können einige Parameter eingestellt werden:
  36. **
  37. ** listenfont            = Stellt ein, welcher Font für die Liste verwe
  38. ndet
  39. **                         werden soll. 'DEFAULT' = Standard-Systemfont
  40. **                                      'SCREEN'  = Screen-Font
  41. **
  42. ** fensterbreite         = Stellt die Breite des Listview-Fensters ein
  43. **
  44. **
  45. ** Zum Schluss moechte ich noch J. Kohrmeyer fuer seine geniale
  46. ** rexxtricks.library danken. Diese und die rexxsupport.library werden
  47. ** von RequestAm benoetigt.
  48. */
  49.  
  50. /**********************************************************************
  51. ***/
  52.  
  53. listenfont       = 'DEFAULT'             /* 'DEFAULT' oder 'SCREEN'    
  54.   */
  55. fensterbreite    = 640                   /* Breite des Listview-Fenster
  56. s */
  57.  
  58. /**********************************************************************
  59. ***/
  60.  
  61. ADDRESS Microdot
  62.  
  63. /* Ergebnisse anfordern */
  64.  
  65. OPTIONS RESULTS
  66.  
  67.  
  68.  
  69. /* rexxtricks.library öffnen */
  70.  
  71. IF ~SHOW('LIBRARIES','rexxtricks.library') THEN
  72.   IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN
  73.     EXIT(10)
  74.  
  75.  
  76. /* rexxsupport.library öffnen */
  77.  
  78. IF ~SHOW('LIBRARIES','rexxsupport.library') THEN
  79.   IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN
  80.     EXIT(10)
  81.  
  82.     
  83. /* Absender und Betreff auslesen */
  84.  
  85. GETCURRENTMAILHEADER ABS
  86.  
  87. IF rc ~= 0 THEN DO
  88.   CALL BEEP()
  89.   EXIT(10)
  90. END
  91.  
  92. absender = result
  93.  
  94. GETCURRENTMAILHEADER BET
  95.  
  96. IF rc ~= 0 THEN DO
  97.   CALL BEEP()
  98.   EXIT(10)
  99. END
  100.  
  101. betreff = result
  102.  
  103.  
  104. /* Prüfen, ob es eine 'INHALT'-Nachricht oder ein Aminet-Readme ist */
  105.  
  106. SELECT
  107.   WHEN MATCHPATTERN(absender,'maps@#?') & MATCHPATTERN(betreff,'INHALT'
  108. ) THEN CALL inhalt
  109.   WHEN MATCHPATTERN(absender,'aminet@sb.sub.de') THEN CALL aminet
  110.   OTHERWISE DO
  111.     CALL BEEP()
  112.     EXIT(10)
  113.   END
  114. END
  115.  
  116.  
  117. /* ListView-Fenster Definition */
  118.  
  119. GETMDPUBSCREENNAME
  120. screenname = result
  121.  
  122. windef.title      = aktuellbrett
  123. windef.postext    = '_Requesten'
  124. windef.negtext    = '_Abbrechen'
  125. windef.pubscreen  = screenname
  126. windef.sort       = 'TRUE'
  127. windef.font       = listenfont
  128. windef.width      = fensterbreite
  129.  
  130.  
  131.  
  132. /* ListView-Fenster öffnen */
  133.  
  134. IF VIEWLIST('liste','windef','destvar') THEN DO
  135.  
  136.         /* Alle ausgewählten Dateien requesten */
  137.  
  138.         text = ''
  139.  
  140.         DO i = 0 TO destvar.count-1
  141.                 x = LSEARCH(destvar.i,'liste')
  142.  
  143.                 IF x ~= (-1) THEN
  144.                         text = text || request.x || '*N'
  145.         END
  146.  
  147.         SENDSHORTMAIL 'MAPS "'||text||'" SUBJECT REQUEST'
  148. END
  149.  
  150.  
  151. /* Script beenden */
  152.  
  153. EXIT(0)
  154.  
  155.  
  156. /* 'INHALT' von 'MAPS' nach requestbaren Files durchsuchen */
  157.  
  158. inhalt:
  159. CALL auslagern
  160.  
  161. nummer = 0
  162.  
  163. IF LEFT(zeile.1,11) = '** INHALT :' THEN DO
  164.   aktuellbrett = SUBSTR(zeile.1,13)
  165.  
  166.   DO i = 0 TO zeile.count-1
  167.  
  168.     IF DATATYPE(WORD(zeile.i,1)) = 'NUM' THEN DO
  169.       liste.nummer  = SUBSTR(zeile.i,5,20)
  170.       request.nummer = aktuellbrett liste.nummer
  171.  
  172.  
  173. /* Filelaenge kommt dazu */
  174.  
  175.       liste.nummer = liste.nummer RIGHT(WORD(zeile.i,5),4)
  176.  
  177.  
  178. /* Datum kommt dazu */
  179.  
  180.       liste.nummer = liste.nummer RIGHT(WORD(zeile.i,3),5)
  181.  
  182.  
  183. /* Beschreibung kommt dazu */
  184.  
  185.       liste.nummer = liste.nummer SUBWORD(zeile.i,6)
  186.  
  187.       nummer = nummer+1
  188.     END
  189.   END
  190.   liste.count = nummer
  191. END
  192. RETURN
  193.  
  194. aminet:
  195.  
  196. GETCURRENTBOARD
  197.  
  198. board=result
  199.  
  200. PARSE VAR board aktuellbrett nummer .
  201.  
  202. DO i=0 to nummer-1
  203.  
  204.   SETPOS GOTOPOS i
  205.  
  206.   GETCURRENTMAILHEADER EMP 0
  207.  
  208.   IF rc ~= 0 then exit(10)
  209.  
  210.   empfaenger = result
  211.  
  212.   GETCURRENTMAILHEADER BET
  213.  
  214.   IF rc ~= 0 then exit(10)
  215.  
  216.   betreff = result
  217.  
  218.   CALL auslagern
  219.  
  220.   liste.i = delstr(betreff,length(betreff)-6)
  221.   request.i = empfaenger liste.i||'.lha'
  222.  
  223.   liste.i = LEFT(liste.i,20)
  224.  
  225. /* Beschreibung kommt dazu */
  226.  
  227.     beschreibung = STRIP(SUBSTR(zeile.0,8),'L')
  228.     liste.i = liste.i LEFT(beschreibung,50)
  229.  
  230. END
  231.  
  232. liste.count = nummer
  233.  
  234. RETURN
  235.  
  236.  
  237. /* Nachricht auslagern, einlesen und wieder loeschen */
  238.  
  239. auslagern:
  240.  
  241.  
  242. /* Auslagern */
  243.  
  244. EXTRACTCURRENTMAIL 'T:Request-Rexx.temp'
  245.  
  246. IF rc ~= 0 THEN DO
  247.   CALL BEEP()
  248.   EXIT(10)
  249. END
  250.  
  251.  
  252. /* Einlesen */
  253.  
  254. IF ~READFILE('T:Request-Rexx.temp','zeile') THEN
  255.   EXIT(10)
  256.  
  257.  
  258. /* Loeschen */
  259.  
  260. dummy = DELETE('T:Request-Rexx.temp')
  261.  
  262.